import static java.lang.Integer.max;
import static java.lang.Math.min;

//给定 n 个非负整数表示每个宽度为 1 的柱子的高度图，计算按此排列的柱子，下雨之后能接多少雨水。
public class 接雨水 {
    public static void main(String[] args) {
        int[] height={0,1,0,2,1,0,1,3,2,1,2,1};
        int trap = trap(height);
        System.out.println(trap);
    }
    public static int trap(int[] height) {
        if (height == null || height.length == 0) {
            return 0;
        }
        // 找左右两边最大值中小者，减去本身高度
        int tem=0;
        for (int i = 1; i < height.length - 1; i++) {
            int l_max=0;
            int r_max=0;
            //i右边最大的数字
            for (int j = i; j <height.length; j++) {
                l_max=max(l_max,height[j]);
            }
            //i左边最大的数字
            for (int j = i; j>=0 ; j--) {
                r_max=max(r_max,height[j]);
            }
            tem+=min(r_max,l_max)-height[i];
        }
        return tem;
    }
}
